﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Csla;
namespace EntGuayasSLA.BL.Listas.Criterias
{

    //Filtro para documento de expedientes
    [Serializable]
    public class ArchivoFasesCriteria : BusinessBase<ArchivoFasesCriteria>
    {
        #region Business Methods
        public static readonly PropertyInfo<string> FaseIdProperty = RegisterProperty<string>(c => c.FaseId);
        public string FaseId
        {
            get { return GetProperty(FaseIdProperty); }
            set { SetProperty(FaseIdProperty, value); }
        }
        public static readonly PropertyInfo<string> TablaProperty = RegisterProperty<string>(c => c.Tabla);
        public string Tabla
        {
            get { return GetProperty(TablaProperty); }
            set { SetProperty(TablaProperty, value); }
        }

        #endregion

        #region Factory Methods

        public static ArchivoFasesCriteria NewArchivoFasesCriteria()
        {
            return DataPortal.Create<ArchivoFasesCriteria>();
        }

        private ArchivoFasesCriteria()
        { /* Require use of factory methods */ }

        #endregion
    }
   

    //Filtro para documento de expedientes
    [Serializable]
    public class ArchivoSubArchivosCriteria : BusinessBase<ArchivoSubArchivosCriteria>
    {
        #region Business Methods
        public static readonly PropertyInfo<string> IdProperty = RegisterProperty<string>(c => c.Id);
        public string Id
        {
            get { return GetProperty(IdProperty); }
            set { SetProperty(IdProperty, value); }
        }
        public static readonly PropertyInfo<string> TablaProperty = RegisterProperty<string>(c => c.Tabla);
        public string Tabla
        {
            get { return GetProperty(TablaProperty); }
            set { SetProperty(TablaProperty, value); }
        }
        public static readonly PropertyInfo<string> EstadoProperty = RegisterProperty<string>(c => c.Estado);
        public string Estado
        {
            get { return GetProperty(EstadoProperty); }
            set { SetProperty(EstadoProperty, value); }
        }
        #endregion

        #region Factory Methods

        public static ArchivoSubArchivosCriteria NewArchivoSubArchivosCriteria()
        {
            return DataPortal.Create<ArchivoSubArchivosCriteria>();
        }

        private ArchivoSubArchivosCriteria()
        { /* Require use of factory methods */ }

        #endregion
    }
    //Filtro para documento de expedientes
    [Serializable]
    public class ArchivoExpedienteCriteria : BusinessBase<ArchivoExpedienteCriteria>
    {
        #region Business Methods
        public static readonly PropertyInfo<string> ExpedienteIdProperty = RegisterProperty<string>(c => c.ExpedienteId);
        public string ExpedienteId
        {
            get { return GetProperty(ExpedienteIdProperty); }
            set { SetProperty(ExpedienteIdProperty, value); }
        }
        public static readonly PropertyInfo<string> EstadoProperty = RegisterProperty<string>(c => c.Estado);
        public string Estado
        {
            get { return GetProperty(EstadoProperty); }
            set { SetProperty(EstadoProperty, value); }
        }

        #endregion

        #region Factory Methods

        public static ArchivoExpedienteCriteria NewArchivoExpedienteCriteria()
        {
            return DataPortal.Create<ArchivoExpedienteCriteria>();
        }

        private ArchivoExpedienteCriteria()
        { /* Require use of factory methods */ }

        #endregion
  }
    
    [Serializable]
    public class ArchivoGlobalCriteria : BusinessBase<ArchivoGlobalCriteria>
    {
        #region Business Methods
        public static readonly PropertyInfo<string> ExpedienteIdProperty = RegisterProperty<string>(c => c.ExpedienteId);
        public string ExpedienteId
        {
            get { return GetProperty(ExpedienteIdProperty); }
            set { SetProperty(ExpedienteIdProperty, value); }
        }
        public static readonly PropertyInfo<string> FaseIdProperty = RegisterProperty<string>(c => c.FaseId);
        public string FaseId
        {
            get { return GetProperty(FaseIdProperty); }
            set { SetProperty(FaseIdProperty, value); }
        }
        public static readonly PropertyInfo<string> TablaProperty = RegisterProperty<string>(c => c.Tabla);
        public string Tabla
        {
            get { return GetProperty(TablaProperty); }
            set { SetProperty(TablaProperty, value); }
        }
        #endregion

        #region Factory Methods

        public static ArchivoGlobalCriteria NewArchivoGlobalCriteria()
        {
            return DataPortal.Create<ArchivoGlobalCriteria>();
        }

        private ArchivoGlobalCriteria()
        { /* Require use of factory methods */ }

        #endregion


    }
    [Serializable]
    public class ArchivoCriteria : BusinessBase<ArchivoCriteria>
    {
        #region Business Methods
        public static readonly PropertyInfo<string> ExpedienteIdProperty = RegisterProperty<string>(c => c.ExpedienteId);
        public string ExpedienteId
        {
            get { return GetProperty(ExpedienteIdProperty); }
            set { SetProperty(ExpedienteIdProperty, value); }
        }
        public static readonly PropertyInfo<string> FaseIdProperty = RegisterProperty<string>(c => c.FaseId);
        public string FaseId
        {
            get { return GetProperty(FaseIdProperty); }
            set { SetProperty(FaseIdProperty, value); }
        }

        private static readonly PropertyInfo<string> TipoDocumentoProperty = RegisterProperty<string>(o => o.TipoDocumento, "Codigo");
        public string TipoDocumento
        {
            get { return GetProperty(TipoDocumentoProperty); }
            set { SetProperty(TipoDocumentoProperty, value); }
        }
        #endregion

        #region Factory Methods

        public static ArchivoCriteria NewArchivoCriteria()
        {
            return DataPortal.Create<ArchivoCriteria>();
        }

        private ArchivoCriteria()
        { /* Require use of factory methods */ }

        #endregion


    }
    [Serializable]
    public class ArchivoRevisorCriteria : BusinessBase<ArchivoRevisorCriteria>
    { 
    
        #region Business Methods      
        public static readonly PropertyInfo<string> AprobadoProperty = RegisterProperty<string>(c => c.Aprobado);
        public string Aprobado
        {
            get { return GetProperty(AprobadoProperty); }
            set { SetProperty(AprobadoProperty, value); }
        }
        private static readonly PropertyInfo<string> TipoDocumentoProperty = RegisterProperty<string>(o => o.TipoDocumento, "Codigo");
        public string TipoDocumento
        {
            get { return GetProperty(TipoDocumentoProperty); }
            set { SetProperty(TipoDocumentoProperty, value); }
        }
        public static readonly PropertyInfo<string> RevisorIdProperty = RegisterProperty<string>(c => c.RevisorId);
        public string RevisorId
        {
            get { return GetProperty(RevisorIdProperty); }
            set { SetProperty(RevisorIdProperty, value); }
        }
        public static readonly PropertyInfo<string> EstadoProperty = RegisterProperty<string>(c => c.Estado);
        public string Estado
        {
            get { return GetProperty(EstadoProperty); }
            set { SetProperty(EstadoProperty, value); }
        }
        
        #endregion

        #region Factory Methods

        public static ArchivoRevisorCriteria NewArchivoRevisorCriteria ()
        {
            return DataPortal.Create<ArchivoRevisorCriteria>();
        }

        private ArchivoRevisorCriteria()
        { /* Require use of factory methods */ }
        #endregion
    }
    [Serializable]
    public class ArchivoEmisorCriteria : BusinessBase<ArchivoEmisorCriteria>
    {

        #region Business Methods                
        public static readonly PropertyInfo<string> EmisorIdProperty = RegisterProperty<string>(c => c.EmisorId);
        public string EmisorId
        {
            get { return GetProperty(EmisorIdProperty); }
            set { SetProperty(EmisorIdProperty, value); }
        }
        public static readonly PropertyInfo<string> EstadoProperty = RegisterProperty<string>(c => c.Estado);
        public string Estado
        {
            get { return GetProperty(EstadoProperty); }
            set { SetProperty(EstadoProperty, value); }
        }
        #endregion

        #region Factory Methods

        public static ArchivoEmisorCriteria NewArchivoEmisorCriteria()
        {
            return DataPortal.Create<ArchivoEmisorCriteria>();
        }

        private ArchivoEmisorCriteria()
        { /* Require use of factory methods */ }

        #endregion

    }
    [Serializable]
    public class ArchivoLicenciamientoCriteria : BusinessBase<ArchivoLicenciamientoCriteria>
    {

        #region Business Methods
        public static readonly PropertyInfo<string> ExpedienteIdProperty = RegisterProperty<string>(c => c.ExpedienteId);
        public string ExpedienteId
        {
            get { return GetProperty(ExpedienteIdProperty); }
            set { SetProperty(ExpedienteIdProperty, value); }
        }
        public static readonly PropertyInfo<string> FaseIdProperty = RegisterProperty<string>(c => c.FaseId);
        public string FaseId
        {
            get { return GetProperty(FaseIdProperty); }
            set { SetProperty(FaseIdProperty, value); }
        }

        private static readonly PropertyInfo<string> TipoDocumentoProperty = RegisterProperty<string>(o => o.TipoDocumento, "Codigo");
        public string TipoDocumento
        {
            get { return GetProperty(TipoDocumentoProperty); }
            set { SetProperty(TipoDocumentoProperty, value); }
        }
        public static readonly PropertyInfo<string> RevisorIdProperty = RegisterProperty<string>(c => c.RevisorId);
        public string RevisorId
        {
            get { return GetProperty(RevisorIdProperty); }
            set { SetProperty(RevisorIdProperty, value); }
        }
        #endregion

        #region Factory Methods

        public static ArchivoRevisorCriteria NewArchivoRevisorCriteria()
        {
            return DataPortal.Create<ArchivoRevisorCriteria>();
        }

        private ArchivoLicenciamientoCriteria()
        { /* Require use of factory methods */ }

        #endregion

    }
    [Serializable]
    public class ArchivoFirmarCriteria : BusinessBase<ArchivoFirmarCriteria>
    {
        #region Business Methods
       
        public static readonly PropertyInfo<string> FaseIdProperty = RegisterProperty<string>(c => c.FaseId);
        public string FaseId
        {
            get { return GetProperty(FaseIdProperty); }
            set { SetProperty(FaseIdProperty, value); }
        }

        private static readonly PropertyInfo<string> RequiereFirmaProperty = RegisterProperty<string>(o => o.RequiereFirma);
        public string RequiereFirma
        {
            get { return GetProperty(RequiereFirmaProperty); }
            set { SetProperty(RequiereFirmaProperty, value); }
        }
        public static readonly PropertyInfo<string> FirmadoProperty = RegisterProperty<string>(c => c.Firmado);
        public string Firmado
        {
            get { return GetProperty(FirmadoProperty); }
            set { SetProperty(FirmadoProperty, value); }
        }
        #endregion

        #region Factory Methods

        public static ArchivoFirmarCriteria NewArchivoFirmarCriteria()
        {
            return DataPortal.Create<ArchivoFirmarCriteria>();
        }

        private ArchivoFirmarCriteria()
        { /* Require use of factory methods */ }

        #endregion


    }

}
